!function(t,e){"function"==typeof define&&define.amd?define("bloodhound",["jquery"],function(n){return t.Bloodhound=e(n)}):"object"==typeof exports?module.exports=e(require("jquery")):t.Bloodhound=e(jQuery)}(this,function(t){var e=function(){"use strict";return{isMsie:function(){return"undefined"!=typeof navigator.userAgentData?!1:navigator.userAgent&&/(msie|trident)/i.test(navigator.userAgent)?navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]:!1},isBlankString:function(t){return!t||/^\s*$/.test(t)},escapeRegExChars:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isString:function(t){return"string"==typeof t},isNumber:function(t){return"number"==typeof t},isArray:t.isArray,isFunction:t.isFunction,isObject:t.isPlainObject,isUndefined:function(t){return"undefined"==typeof t},isElement:function(t){return!(!t||1!==t.nodeType)},isJQuery:function(e){return e instanceof t},toStr:function(t){return e.isUndefined(t)||null===t?"":t+""},bind:t.proxy,each:function(e,n){function i(t,e){return n(e,t)}t.each(e,i)},map:t.map,filter:t.grep,every:function(e,n){var i=!0;return e?(t.each(e,function(t,s){return(i=n.call(null,s,t,e))?void 0:!1}),!!i):i},some:function(e,n){var i=!1;return e?(t.each(e,function(t,s){return(i=n.call(null,s,t,e))?!1:void 0}),!!i):i},mixin:t.extend,identity:function(t){return t},clone:function(e){return t.extend(!0,{},e)},getIdGenerator:function(){var t=0;return function(){return t++}},templatify:function(e){function n(){return String(e)}return t.isFunction(e)?e:n},defer:function(t){setTimeout(t,0)},debounce:function(t,e,n){var i,s;return function(){var r,a,o=this,u=arguments;return r=function(){i=null,n||(s=t.apply(o,u))},a=n&&!i,clearTimeout(i),i=setTimeout(r,e),a&&(s=t.apply(o,u)),s}},throttle:function(t,e){var n,i,s,r,a,o;return a=0,o=function(){a=new Date,s=null,r=t.apply(n,i)},function(){var u=new Date,c=e-(u-a);return n=this,i=arguments,0>=c?(clearTimeout(s),s=null,a=u,r=t.apply(n,i)):s||(s=setTimeout(o,c)),r}},stringify:function(t){return e.isString(t)?t:JSON.stringify(t)},noop:function(){}}}(),n="0.11.1",i=function(){"use strict";function t(t){return t=e.toStr(t),t?t.split(/\s+/):[]}function n(t){return t=e.toStr(t),t?t.split(/\W+/):[]}function i(t){return function(n){return n=e.isArray(n)?n:[].slice.call(arguments,0),function(i){var s=[];return e.each(n,function(n){s=s.concat(t(e.toStr(i[n])))}),s}}}return{nonword:n,whitespace:t,obj:{nonword:i(n),whitespace:i(t)}}}(),s=function(){"use strict";function n(n){this.maxSize=e.isNumber(n)?n:100,this.reset(),this.maxSize<=0&&(this.set=this.get=t.noop)}function i(){this.head=this.tail=null}function s(t,e){this.key=t,this.val=e,this.prev=this.next=null}return e.mixin(n.prototype,{set:function(t,e){var n,i=this.list.tail;this.size>=this.maxSize&&(this.list.remove(i),delete this.hash[i.key],this.size--),(n=this.hash[t])?(n.val=e,this.list.moveToFront(n)):(n=new s(t,e),this.list.add(n),this.hash[t]=n,this.size++)},get:function(t){var e=this.hash[t];return e?(this.list.moveToFront(e),e.val):void 0},reset:function(){this.size=0,this.hash={},this.list=new i}}),e.mixin(i.prototype,{add:function(t){this.head&&(t.next=this.head,this.head.prev=t),this.head=t,this.tail=this.tail||t},remove:function(t){t.prev?t.prev.next=t.next:this.head=t.next,t.next?t.next.prev=t.prev:this.tail=t.prev},moveToFront:function(t){this.remove(t),this.add(t)}}),n}(),r=function(){"use strict";function t(t,n){this.prefix=["__",t,"__"].join(""),this.ttlKey="__ttl__",this.keyMatcher=new RegExp("^"+e.escapeRegExChars(this.prefix)),this.ls=n||a,!this.ls&&this._noop()}function n(){return(new Date).getTime()}function i(t){return JSON.stringify(e.isUndefined(t)?null:t)}function s(t){return JSON.parse(t)}function r(t){var e,n,i=[],s=a.length;for(e=0;s>e;e++)(n=a.key(e)).match(t)&&i.push(n.replace(t,""));return i}var a;try{a=window.localStorage,a.setItem("~~~","!"),a.removeItem("~~~")}catch(o){a=null}return e.mixin(t.prototype,{_prefix:function(t){return this.prefix+t},_ttlKey:function(t){return this._prefix(t)+this.ttlKey},_noop:function(){this.get=this.set=this.remove=this.clear=this.isExpired=e.noop},_safeSet:function(t,e){try{this.ls.setItem(t,e)}catch(n){"QuotaExceededError"===n.name&&(this.clear(),this._noop())}},get:function(t){return this.isExpired(t)&&this.remove(t),s(this.ls.getItem(this._prefix(t)))},set:function(t,s,r){return e.isNumber(r)?this._safeSet(this._ttlKey(t),i(n()+r)):this.ls.removeItem(this._ttlKey(t)),this._safeSet(this._prefix(t),i(s))},remove:function(t){return this.ls.removeItem(this._ttlKey(t)),this.ls.removeItem(this._prefix(t)),this},clear:function(){var t,e=r(this.keyMatcher);for(t=e.length;t--;)this.remove(e[t]);return this},isExpired:function(t){var i=s(this.ls.getItem(this._ttlKey(t)));return e.isNumber(i)&&n()>i?!0:!1}}),t}(),a=function(){"use strict";function n(t){t=t||{},this.cancelled=!1,this.lastReq=null,this._send=t.transport,this._get=t.limiter?t.limiter(this._get):this._get,this._cache=t.cache===!1?new s(0):o}var i=0,r={},a=6,o=new s(10);return n.setMaxPendingRequests=function(t){a=t},n.resetCache=function(){o.reset()},e.mixin(n.prototype,{_fingerprint:function(e){return e=e||{},e.url+e.type+t.param(e.data||{})},_get:function(t,e){function n(t){e(null,t),h._cache.set(u,t)}function s(){e(!0)}function o(){i--,delete r[u],h.onDeckRequestArgs&&(h._get.apply(h,h.onDeckRequestArgs),h.onDeckRequestArgs=null)}var u,c,h=this;u=this._fingerprint(t),this.cancelled||u!==this.lastReq||((c=r[u])?c.done(n).fail(s):a>i?(i++,r[u]=this._send(t).done(n).fail(s).always(o)):this.onDeckRequestArgs=[].slice.call(arguments,0))},get:function(n,i){var s,r;i=i||t.noop,n=e.isString(n)?{url:n}:n||{},r=this._fingerprint(n),this.cancelled=!1,this.lastReq=r,(s=this._cache.get(r))?i(null,s):this._get(n,i)},cancel:function(){this.cancelled=!0}}),n}(),o=window.SearchIndex=function(){"use strict";function n(n){n=n||{},n.datumTokenizer&&n.queryTokenizer||t.error("datumTokenizer and queryTokenizer are both required"),this.identify=n.identify||e.stringify,this.datumTokenizer=n.datumTokenizer,this.queryTokenizer=n.queryTokenizer,this.reset()}function i(t){return t=e.filter(t,function(t){return!!t}),t=e.map(t,function(t){return t.toLowerCase()})}function s(){var t={};return t[u]=[],t[o]={},t}function r(t){for(var e={},n=[],i=0,s=t.length;s>i;i++)e[t[i]]||(e[t[i]]=!0,n.push(t[i]));return n}function a(t,e){var n=0,i=0,s=[];t=t.sort(),e=e.sort();for(var r=t.length,a=e.length;r>n&&a>i;)t[n]e[i]?i++:(s.push(t[n]),n++,i++);return s}var o="c",u="i";return e.mixin(n.prototype,{bootstrap:function(t){this.datums=t.datums,this.trie=t.trie},add:function(t){var n=this;t=e.isArray(t)?t:[t],e.each(t,function(t){var r,a;n.datums[r=n.identify(t)]=t,a=i(n.datumTokenizer(t)),e.each(a,function(t){var e,i,a;for(e=n.trie,i=t.split("");a=i.shift();)e=e[o][a]||(e[o][a]=s()),e[u].push(r)})})},get:function(t){var n=this;return e.map(t,function(t){return n.datums[t]})},search:function(t){var n,s,c=this;return n=i(this.queryTokenizer(t)),e.each(n,function(t){var e,n,i,r;if(s&&0===s.length)return!1;for(e=c.trie,n=t.split("");e&&(i=n.shift());)e=e[o][i];return e&&0===n.length?(r=e[u].slice(0),s=s?a(s,r):r,void 0):(s=[],!1)}),s?e.map(r(s),function(t){return c.datums[t]}):[]},all:function(){var t=[];for(var e in this.datums)t.push(this.datums[e]);return t},reset:function(){this.datums={},this.trie=s()},serialize:function(){return{datums:this.datums,trie:this.trie}}}),n}(),u=function(){"use strict";function t(t){this.url=t.url,this.ttl=t.ttl,this.cache=t.cache,this.prepare=t.prepare,this.transform=t.transform,this.transport=t.transport,this.thumbprint=t.thumbprint,this.storage=new r(t.cacheKey)}var n;return n={data:"data",protocol:"protocol",thumbprint:"thumbprint"},e.mixin(t.prototype,{_settings:function(){return{url:this.url,type:"GET",dataType:"json"}},store:function(t){this.cache&&(this.storage.set(n.data,t,this.ttl),this.storage.set(n.protocol,location.protocol,this.ttl),this.storage.set(n.thumbprint,this.thumbprint,this.ttl))},fromCache:function(){var t,e={};return this.cache?(e.data=this.storage.get(n.data),e.protocol=this.storage.get(n.protocol),e.thumbprint=this.storage.get(n.thumbprint),t=e.thumbprint!==this.thumbprint||e.protocol!==location.protocol,e.data&&!t?e.data:null):null},fromNetwork:function(t){function e(){t(!0)}function n(e){t(null,s.transform(e))}var i,s=this;t&&(i=this.prepare(this._settings()),this.transport(i).fail(e).done(n))},clear:function(){return this.storage.clear(),this}}),t}(),c=function(){"use strict";function t(t){this.url=t.url,this.prepare=t.prepare,this.transform=t.transform,this.transport=new a({cache:t.cache,limiter:t.limiter,transport:t.transport})}return e.mixin(t.prototype,{_settings:function(){return{url:this.url,type:"GET",dataType:"json"}},get:function(t,e){function n(t,n){t?e([]):e(s.transform(n))}var i,s=this;if(e)return t=t||"",i=this.prepare(t,this._settings()),this.transport.get(i,n)},cancelLastRequest:function(){this.transport.cancel()}}),t}(),h=function(){"use strict";function i(i){var s;return i?(s={url:null,ttl:864e5,cache:!0,cacheKey:null,thumbprint:"",prepare:e.identity,transform:e.identity,transport:null},i=e.isString(i)?{url:i}:i,i=e.mixin(s,i),!i.url&&t.error("prefetch requires url to be set"),i.transform=i.filter||i.transform,i.cacheKey=i.cacheKey||i.url,i.thumbprint=n+i.thumbprint,i.transport=i.transport?o(i.transport):t.ajax,i):null}function s(n){var i;if(n)return i={url:null,cache:!0,prepare:null,replace:null,wildcard:null,limiter:null,rateLimitBy:"debounce",rateLimitWait:300,transform:e.identity,transport:null},n=e.isString(n)?{url:n}:n,n=e.mixin(i,n),!n.url&&t.error("remote requires url to be set"),n.transform=n.filter||n.transform,n.prepare=r(n),n.limiter=a(n),n.transport=n.transport?o(n.transport):t.ajax,delete n.replace,delete n.wildcard,delete n.rateLimitBy,delete n.rateLimitWait,n}function r(t){function e(t,e){return e.url=r(e.url,t),e}function n(t,e){return e.url=e.url.replace(a,encodeURIComponent(t)),e}function i(t,e){return e}var s,r,a;return s=t.prepare,r=t.replace,a=t.wildcard,s?s:s=r?e:t.wildcard?n:i}function a(t){function n(t){return function(n){return e.debounce(n,t)}}function i(t){return function(n){return e.throttle(n,t)}}var s,r,a;return s=t.limiter,r=t.rateLimitBy,a=t.rateLimitWait,s||(s=/^throttle$/i.test(r)?i(a):n(a)),s}function o(n){return function(i){function s(t){e.defer(function(){a.resolve(t)})}function r(t){e.defer(function(){a.reject(t)})}var a=t.Deferred();return n(i,s,r),a}}return function(n){var r,a;return r={initialize:!0,identify:e.stringify,datumTokenizer:null,queryTokenizer:null,sufficient:5,sorter:null,local:[],prefetch:null,remote:null},n=e.mixin(r,n||{}),!n.datumTokenizer&&t.error("datumTokenizer is required"),!n.queryTokenizer&&t.error("queryTokenizer is required"),a=n.sorter,n.sorter=a?function(t){return t.sort(a)}:e.identity,n.local=e.isFunction(n.local)?n.local():n.local,n.prefetch=i(n.prefetch),n.remote=s(n.remote),n}}(),l=function(){"use strict";function n(t){t=h(t),this.sorter=t.sorter,this.identify=t.identify,this.sufficient=t.sufficient,this.local=t.local,this.remote=t.remote?new c(t.remote):null,this.prefetch=t.prefetch?new u(t.prefetch):null,this.index=new o({identify:this.identify,datumTokenizer:t.datumTokenizer,queryTokenizer:t.queryTokenizer}),t.initialize!==!1&&this.initialize()}var s;return s=window&&window.Bloodhound,n.noConflict=function(){return window&&(window.Bloodhound=s),n},n.tokenizers=i,e.mixin(n.prototype,{__ttAdapter:function(){function t(t,e,i){return n.search(t,e,i)}function e(t,e){return n.search(t,e)}var n=this;return this.remote?t:e},_loadPrefetch:function(){function e(t,e){return t?n.reject():(s.add(e),s.prefetch.store(s.index.serialize()),n.resolve(),void 0)}var n,i,s=this;return n=t.Deferred(),this.prefetch?(i=this.prefetch.fromCache())?(this.index.bootstrap(i),n.resolve()):this.prefetch.fromNetwork(e):n.resolve(),n.promise()},_initialize:function(){function t(){e.add(e.local)}var e=this;return this.clear(),(this.initPromise=this._loadPrefetch()).done(t),this.initPromise},initialize:function(t){return!this.initPromise||t?this._initialize():this.initPromise},add:function(t){return this.index.add(t),this},get:function(t){return t=e.isArray(t)?t:[].slice.call(arguments),this.index.get(t)},search:function(t,n,i){function s(t){var n=[];e.each(t,function(t){!e.some(r,function(e){return a.identify(t)===a.identify(e)})&&n.push(t)}),i&&i(n)}var r,a=this;return r=this.sorter(this.index.search(t)),n(this.remote?r.slice():r),this.remote&&r.length=c?(clearTimeout(s),s=null,a=u,r=t.apply(n,i)):s||(s=setTimeout(o,c)),r}},stringify:function(t){return e.isString(t)?t:JSON.stringify(t)},noop:function(){}}}(),n=function(){"use strict";function t(t){var a,o;return o=e.mixin({},r,t),a={css:s(),classes:o,html:n(o),selectors:i(o)},{css:a.css,html:a.html,classes:a.classes,selectors:a.selectors,mixin:function(t){e.mixin(t,a)}}}function n(t){return{wrapper:'',menu:'
'}}function i(t){var n={};return e.each(t,function(t,e){n[e]="."+t}),n}function s(){var t={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},menu:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:" 0"}};return e.isMsie()&&e.mixin(t.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),t}var r={wrapper:"twitter-typeahead",input:"tt-input",hint:"tt-hint",menu:"tt-menu",dataset:"tt-dataset",suggestion:"tt-suggestion",selectable:"tt-selectable",empty:"tt-empty",open:"tt-open",cursor:"tt-cursor",highlight:"tt-highlight"};return t}(),i=function(){"use strict";function n(e){e&&e.el||t.error("EventBus initialized without el"),this.$el=t(e.el)}var i,s;return i="typeahead:",s={render:"rendered",cursorchange:"cursorchanged",select:"selected",autocomplete:"autocompleted"},e.mixin(n.prototype,{_trigger:function(e,n){var s;return s=t.Event(i+e),(n=n||[]).unshift(s),this.$el.trigger.apply(this.$el,n),s},before:function(t){var e,n;return e=[].slice.call(arguments,1),n=this._trigger("before"+t,e),n.isDefaultPrevented()},trigger:function(t){var e;this._trigger(t,[].slice.call(arguments,1)),(e=s[t])&&this._trigger(e,[].slice.call(arguments,1))}}),n}(),s=function(){"use strict";function t(t,e,n,i){var s;if(!n)return this;for(e=e.split(u),n=i?o(n,i):n,this._callbacks=this._callbacks||{};s=e.shift();)this._callbacks[s]=this._callbacks[s]||{sync:[],async:[]},this._callbacks[s][t].push(n);return this}function e(e,n,i){return t.call(this,"async",e,n,i)}function n(e,n,i){return t.call(this,"sync",e,n,i)}function i(t){var e;if(!this._callbacks)return this;for(t=t.split(u);e=t.shift();)delete this._callbacks[e];return this}function s(t){var e,n,i,s,a;if(!this._callbacks)return this;for(t=t.split(u),i=[].slice.call(arguments,1);(e=t.shift())&&(n=this._callbacks[e]);)s=r(n.sync,this,[e].concat(i)),a=r(n.async,this,[e].concat(i)),s()&&c(a);return this}function r(t,e,n){function i(){for(var i,s=0,r=t.length;!i&&r>s;s+=1)i=t[s].apply(e,n)===!1;return!i}return i}function a(){var t;return t=window.setImmediate?function(t){setImmediate(function(){t()})}:function(t){setTimeout(function(){t()},0)}}function o(t,e){return t.bind?t.bind(e):function(){t.apply(e,[].slice.call(arguments,0))}}var u=/\s+/,c=a();return{onSync:n,onAsync:e,off:i,trigger:s}}(),r=function(t){"use strict";function n(t,n,i){for(var s,r=[],a=0,o=t.length;o>a;a++)r.push(e.escapeRegExChars(t[a]));return s=i?"\\b("+r.join("|")+")\\b":"("+r.join("|")+")",n?new RegExp(s):new RegExp(s,"i")}var i={node:null,pattern:null,tagName:"strong",className:null,wordsOnly:!1,caseSensitive:!1};return function(s){function r(e){var n,i,r;return(n=o.exec(e.data))&&(r=t.createElement(s.tagName),s.className&&(r.className=s.className),i=e.splitText(n.index),i.splitText(n[0].length),r.appendChild(i.cloneNode(!0)),e.parentNode.replaceChild(r,i)),!!n}function a(t,e){for(var n,i=3,s=0;s